colima起動時にdocker-credential-desktop resolves to executable in current directory のエラーが出る場合の対処

colima起動時にdocker-credential-desktop resolves to executable in current directory のエラーが出る場合の対処

Colima起動時にcredStoreに関するエラーが発生しました。直接的な原因が分かり辛いものだったため、解消までの手続きを備忘録としてみました。
Clock Icon2023.11.06

この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。

PCを再起動した後、iTermを起動する際に時折、Dockerに関するエラーが発生します。このエラーは、「Send text at start」に/opt/homebrew/bin/colima startと入力したセッションを作成し、複数のタブで同一のセッションを使用した結果、発生しました。根本的な解決策は、各タブごとに異なるセッションを用意することです。しかし、再起動によって解決することもあるため、放置していました。

その中で、記事タイトルにも含まれているエラーが発生しました。これは単純な再起動では対処できない問題でした。具体的なエラーの内容と解決方法について説明します。

docker-credential-desktop resolves to executable in current directory

起動時に以下のエラーが発生するようになりました。

error getting credentials - err: docker-credential-desktop resolves to executable in current directory (./docker-credential-desktop), out: ``

問題は、docker-credential-desktopの設定が作業ディレクトリ内に存在しなかったことです。他の作業ディレクトリの設定を考慮に入れ、共通設定を確認しましょう。dockerのconfigは~/.docker/config.jsonにあります。

当環境では以下のようになっていました。

{
    "auths": {
        "https://index.docker.io/v1/": {}
    },
    "credsStore": "desktop",
    "currentContext": "colima"
}

credsStoreはDockerでの認証情報ストアの参照先で、今回はdesktop、つまりDockerDesktopを指します。これはdocker-credential-desktopが呼び出されるということです。認証情報ストアの詳細については公式ドキュメントを参照してください。

DockerDesktopはライセンスの都合で削除されているため、参照先として見つかるはずがありません。

解消方法

シンプルにcredsStore設定を削除します。

{
    "auths": {
        "https://index.docker.io/v1/": {}
    },
    "currentContext": "colima"
}

credsStoreのキーをcredStoreに書き換えることで対応することも可能です。しかし、この方法では不要な設定が残り続けることになります。

あとがき

DockerDesktopをライセンスの問題で削除した後、認証情報センター設定の再参照がこれまで発生していませんでした。しかし、今回改めて発生したため、問題が起きました。この問題は理解すればシンプルで、対策を講じると設定自体が消えるので、おそらく今後は発生しないでしょう。

Share this article

facebook logohatena logotwitter logo

© Classmethod, Inc. All rights reserved.